/* eslint-disable */
let opts = {
  total: 0, // 记录总数
  pageSize: 0, // 每页记录数
  pageRange: 0 // 页数范围
},
center = 0, // 当前页显示在第几个位置
config = {},
current = 1, // 当前页
left = 1, // 第一个页码
right = 1, // 最后一个页码
pageTotal = 1, // 最后一页，即总页数
init = function(_opts) { // 通常是设置total，pageSize，pageRange
  for (var key in _opts) {
    opts[key] = _opts[key];
  }
  center = Math.ceil(opts.pageRange / 2);
  pageTotal = Math.ceil(opts.total / opts.pageSize); // 设置后pageTotal要改变
},
getConfig = function(no) { // 每次跳页的时候都要重新计算
  current = no >> 0;

  if (current < 1) { // 如果传过来的页码小于1
    current = 1;
  } else if (current > pageTotal) { // 如果大于总页数
    current = pageTotal;
  }

  if (current > center) { // 假设页面范围为10，当前页码总是显示在第5个位置
    left = current - center + 1; // 如果当前页是7，第一页为减去7-6也就是第1页，这样就错了所以加上1，第一页从第2页开始
    right = left + opts.pageRange - 1; // 如果当前页是7，尾页为第一页（2）加上10-1
  } else {
    left = 1, right = opts.pageRange;
  }

  right > pageTotal && (right = pageTotal); // 不能超页

  config = {
    left: left,
    right: right,
    current: current,
    center: center,
    pageTotal: pageTotal,
    prev: current - 1 < 1 ? 0 : current - 1, // 0为无效页码
    next: current + 1 > pageTotal ? 0 : current + 1
  };
  return config;
}

export default {
  init: init,
  getConfig: getConfig
}
